Gesture detection and interactions

ABSTRACT

Gesture detection and interaction techniques are described. Object detection used to support the gestures may be accomplished in a variety of ways, such as by using radio waves as part of a radar technique. In a first example, the techniques are implemented such that one hand of a user sets a context for a gesture that is defined by another hand of the user. In another example, a gesture recognition mode is utilized. In yet another example, detection of distance is used such that the same motions may be used to different between operations performed. In a further example, split gestures are supported. In another instance, entry into a gesture recognition mode may be implemented through touch and then recognized through three-dimensional orientation and motion of that hand or another.

PRIORITY APPLICATIONS

This application is a continuation of and claims priority to U.S. patent application Ser. No. 16/238,464 titled “Gesture Detection and Interactions,” filed Jan. 2, 2019, which, is a continuation of and claims priority to U.S. patent application Ser. No. 14/874,955 titled “Gesture Detection and Interactions,” filed Oct. 5, 2015, now U.S. Pat. No. 10,203,763, which, in turn, claims priority under 35 U.S.C. § 119(e) to U.S. Patent Application Ser. No. 62/167,209 titled “Gestures Detection and Interactions,” filed May 27, 2015, the disclosures of which are incorporated by reference herein in their entirety.

BACKGROUND

Gestures have been developed as a way to expand functionality available via a computing devices in an intuitive manner. Gestures detected using touchscreen functionality of a computing device, for instance, may be used to mimic real world user interactions, such as to scroll through a webpage using a pan gesture, swipe to turn a page in a book, and so forth.

As the ways in which gestures may be detected has expanded, however, so to have the challenges in supporting interaction using these gestures. In one such example, techniques have been developed to recognize gestures in three dimensions, such that a user may perform actions that are recognized as a gesture without physically touching the computing device. Accordingly, these gestures may be difficult to detect, distinguish from actions that are not intended as gestures, and determine a context for the gestures.

SUMMARY

Gesture detection and interaction techniques are described. Object detection used to support the gestures may be accomplished in a variety of ways, such as by use of radio waves as part of a radar technique. Through use of radio waves, a variety of gestures may be detected, even through an article of clothing worn by or associated with a user, e.g., from a user's pocket, purse, briefcase, gym bag, and so on. In a first example, the techniques are implemented such that one hand of a user sets a context for a gesture that is defined by another hand of the user. In another example, detection of distance is used such that the same motions may be used to different between operations performed. In a further example, split gestures are supported. A gesture, for instance, may be defined at least in part through interaction with a touchscreen device with one hand and detected using a three dimensional object detection system (e.g., radar techniques) with another hand. In another instance, entry into a gesture recognition mode may be implemented through touch and then recognized through three-dimensional orientation and motion of that hand or another. Thus, a variety of gesture detection techniques may be leveraged to increase an amount of gesture available to a user, further discussion of which is described in the following.

This Summary introduces a selection of concepts in a simplified form that are further described below in the Detailed Description. As such, this Summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items. Entities represented in the figures may be indicative of one or more entities and thus reference may be made interchangeably to single or plural forms of the entities in the discussion.

FIG. 1 is an illustration of an environment in an example implementation that is operable to perform gesture detection and interaction techniques described herein.

FIG. 2 depicts a system and FIG. 3 depicts a procedure in an example implementation in which a first input defines an amount of scale to be used in performance of the one or more operations and the second input defines the operations to be performed.

FIG. 4 depicts a system and FIG. 5 depicts a procedure in an example implementation in which a gesture recognition mode is used to aid in disambiguation of user inputs.

FIG. 6 depicts a system in an example implementation in which stages of a gesture are used to establish entry into a gesture, test a status of the gesture, and perform the gesture.

FIG. 7 depicts a system and FIG. 8 depicts a procedure in an example implementation in which distance at which a gesture is performed is used to differentiate between operations performed in response to the gesture.

FIG. 9 depicts a system and FIG. 10 depicts a procedure in an example implementation in which a gesture is defined using inputs from a plurality of different input devices.

FIG. 11 depicts a system and FIG. 12 depicts a procedure in an example implementation in which a gesture is detected through an article associated with or worn by a user.

FIG. 13 depicts an example implementation in which content is transferred between devices responsive to a gesture.

FIG. 14 depicts an example implementation of a cut and paste gesture and corresponding operation.

FIG. 15 depicts an example implementation of feedback provided to support a three-dimensional gesture.

FIG. 16 illustrates an example system including various components of an example device that can be implemented as any type of computing device as described and/or utilize with reference to FIGS. 1-15 to implement embodiments of the techniques described herein.

DETAILED DESCRIPTION

Overview

Interactions in three-dimensional space with a device may be difficult using conventional techniques because the device is not given a context for the user's intended interaction. This may cause limitations in an amount of gestures recognized by the device and thus may be confusing for the user due to instances in which the same gesture may be used for multiple purposes, may result in advertent inputs due to the device's inability to disambiguate between performance of intended and unintended gestures, and so forth.

Techniques are described to support gesture detection and interactions, which may be performed at least in part in a three-dimensional space. Object detection used to support the gestures may be accomplished in a variety of ways, such as by using radio waves as part of a radar technique. Through use of radio waves, a variety of gestures may be detected, even through an article of clothing worn by or associated with a user, e.g., from a user's pocket, purse, briefcase, gym bag, and so on as described in relation to FIGS. 11-12.

In a first example, the techniques are implemented such that one hand of a user sets a context for a gesture that is defined by another hand of the user. In this way, a computing device may be used to disambiguate between gestures made by a hand using a context specified by another hand. The user, for instance, may set an amount of scale (e.g., a scaling factor) by raising a left hand up or down that is applied to a twisting motion performed by the user's right hand. This may be used to adjust volume, navigate through a document and so on quickly and with increased accuracy, further discussion of which is described in relation to FIGS. 2-3.

In another example, a gesture recognition mode is utilized. A user, for instance, may make a gesture with a hand to enter a gesture recognition mode. While in the mode, the user may make other gestures with another hand that may then be recognized by the computing device. In this way, an amount of available gestures may be expanded by providing the computing device with an ability to disambiguate between when a user intends to input a gesture and when a user does not, further discussion of which is described in relation to FIGS. 4-5.

In yet another example, detection of distance is used such that the same motions may be used to differentiate between operations performed. A user, for instance, may make a pinch motion relatively close to a device to “pick up” (i.e., select) an item displayed on the display device and make the same pinching motion past a threshold distance in order to adjust a display scale of a user interface displayed by the device. In this way, an amount of available gestures may also be expanded by providing the computing device with an ability to disambiguate between gestures based on distance, further discussion of which is described in relation to FIGS. 7-8.

In a further example, split gestures are supported. A gesture, for instance, may be defined at least in part through interaction with a touchscreen device with one hand and detected using a three dimensional object detection system (e.g., radar techniques) with another hand. In another instance, entry into a gesture recognition mode may be implemented through touch and then recognized through three-dimensional orientation and motion of that hand or another. Thus, a variety of gesture detection techniques may be leveraged to increase an amount of gesture available to a user, further discussion of which is described in relation to FIGS. 9-10.

In the following discussion, an example environment is described that may employ the gesture techniques described herein. Example procedures are also described which may be performed in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.

Example Environment

FIG. 1 is an illustration of an environment 100 in an example implementation that is operable to employ gesture detection, recognition, and interaction techniques described herein. The illustrated environment 100 includes a computing device 102, which is configurable in a variety of ways.

The computing device 102, for instance, may be configured as a wearable device having a housing 104 that is configured to be worn by or attached to a user. As such, the housing of the wearable device may take a variety of different forms, such as a ring, broach, pendant, configured to be worn on a wrist of a user as illustrated, glasses 106 as also illustrated, and so forth. The computing device 102 may also be configured to include a housing 108 configured to be held by one or more hands of a user, such as a mobile phone or tablet as illustrated, a laptop 110 computer, a dedicated camera 112, and so forth. Other examples include incorporation of the computing device 102 as part of a vehicle 114 (e.g., plane, train, boat, aircraft, and balloon), as part of the “Internet-of-things” such as a thermostat 116, appliance, vent, furnace, and so forth. Additional forms of computing devices 102 include desktop computers, game consoles, media consumption devices, televisions, and so on.

Thus, the computing device 102 ranges from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g., wearables). Although single computing device examples are shown, a computing device may be representative of a plurality of different devices (e.g., a television and remote control) as further described in relation to FIG. 16.

The computing device 102, regardless of configuration, is configured to include a three dimensional (3D) object detection system 118 and a gesture module 120. The gesture module 120 is representative of functionality to identify gestures made by a user 122 (e.g., either directly by the user and/or with an object) to initiate operations to be performed by the computing device 102. For example, the gesture module 120 may receive inputs that are usable to detect attributes to identify an object, orientation of the object, and/or movement of the object. Based on recognition of a combination of one or more of the attributes, the gesture module 120 may cause an operation to be performed, such as to detect a rightward swipe by a user's hand and cause a user interface output by the computing device 102 to move a corresponding direction.

The 3D object detection system 118 is configurable to detect objects in three dimensions, such as to identify the object, an orientation of the object, and/or movement of the object. The detection may be performed using a variety of different techniques, such as cameras (e.g., a time-of-flight camera), sound waves, and so on. In the illustrated example, the 3D object detection system 118 is configured to use radar techniques and radio waves through use of a radio wave transmitter/receiver 124 and a radar processing module 126. The radio wave transmitter/receiver 124, for instance, transmits radio waves in the radio frequency range corresponding to one or more Wi-Fi frequency bands, e.g., IEEE 802.11 and so forth. The radar processing module 126 then detects return of these radio waves to detect objects, which may be performed at a resolution of less than one centimeter.

Through use of radio waves, the 3D object detection system 118 may detect objects that are located behind other objects, e.g., are least partially obscured from “view” by another object. The 3D object detection system 118 may also transmit through materials such as fabric and plastics and even through a housing of the computing device 102 itself such that the housing may be made with lower cost and increased protection against outside elements. These techniques may also be leveraged to detect gestures while the computing device 102 is the user's 122 pocket as further described below. Complementary detection techniques may also be used, such as for the radar processing module 126 to leverage inputs from a plurality of computing devices, such as a watch and phone as illustrated, to detect as a gesture. In the following, a variety of gesture detection and interaction techniques are described, which may be implemented using radar or other object detection techniques.

FIG. 2 depicts a system 200 and FIG. 3 depicts a procedure 300 in an example implementation in which a first input defines an amount of scale to be used in performance of the one or more operations and the second input defines the operations to be performed. In the following, reference is made interchangeably to both FIGS. 2 and 3.

The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of the procedure may be implemented in hardware, firmware, or software, or a combination thereof. The procedure is shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks.

A first input is detected by the computing device 102 involving a first gesture performed by a first hand 202 of a user (block 302). The 3D objection detection system 118, for instance, may detect a first hand 202 of a user 122 of FIG. 1 in three dimensional space, e.g., using a radar technique. The first hand 202 of the user is used to perform a gesture to specify relative amounts of a scaling factor 204, e.g., high 206 to low 208 as illustrated using the arrow. The gesture module 120, for instance, recognizes from inputs of the 3D object detection system 118 that the first hand is positioned palm down and the fingers are relatively flat and thus is used to define the scaling factor 204. The gesture module 120 also recognizes a relative height of the hand 202 and associates a corresponding amount of the scaling factor.

A second input is also detected by the computing device 102 as involving a second gesture performed by a second hand 210 of the user (block 304). Like above, the 3D objection detection system 118 detects a second hand 210 of a user 122 of FIG. 1 in three dimensional space using a radar technique. The second hand 210 of the user in this instance is illustrated as making a motion that mimics grasping of a physical control knob to make a control 212 gesture, to move right 214 to left 216 by twisting right or left.

Performance of one or more operations by the computing device 102 is controlled in which the first input defines an amount of scale to be used in performance of the one or more operations and the second input defines the operations to be performed (block 306). Continuing with the previous example, the gesture module 120 detects the gestures by the first and second hands 202, 210 in which the first hand 202 sets an amount of scale (i.e., scaling factor 204) to be applied to an operation defined by the second hand 210, e.g., to provide control in a manner similar to interaction with a physical knob.

This may be used to initiate operations including navigation forward or back through a user interface, scrolling, zoom, adjust volume, contrast, turn a channel (e.g., radio or television), and any other operation controllable using a physical knob. Thus, by raising the first hand 202 high 206 a scaling factor applied to a right 214 twist by the second hand 210 is increased and by lowering the first hand 202 the scaling factor is decreased. In order to navigate through a document, for instance, a control 212 twisting motion to the right 214 by the second hand 210 may be used to move forward through the document and the scaling factor 204 specified by the first hand 202 defines a number of pages involved in that motion. In this way, the first hand 202 is usable to set a context of a gesture that is identified from inputs associated with the second hand 210 of the user. Other examples of context are also contemplated, such as to enter a gesture mode usable to disambiguate intended from unintended gestures as described in the following.

FIG. 4 depicts a system 400 and FIG. 5 depicts a procedure 500 in an example implementation in which a gesture recognition mode is used to aid in disambiguation of user inputs. In the following, reference is made interchangeably to both FIGS. 4 and 5.

The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of the procedure may be implemented in hardware, firmware, or software, or a combination thereof. The procedure is shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks.

One of the challenges in devices that support detection of gestures in three dimensions is to differentiate between motions that are desired by a user to initiate an operation and those that are not. Due to this, conventional techniques often limited a number of gestures that are made available, thereby limiting functionality of the computing device 102 as a whole. In the techniques described herein, however, a gesture recognition mode is utilized to expand a number of gestures available as well as accuracy in recognition of those gestures.

Accordingly, a gesture recognition mode is entered responsive to inputs resulting from detection by the 3D object detection system of a first gesture made by a first hand of a user (block 502). Performance of one or more operations of the computing device is caused responsive to inputs resulting from detection by the three dimensional object detection system of a second gesture made by a second hand of the user while in the gesture recognition mode (block 504).

FIG. 4 illustrates an example of this technique using first, second, and third stages 402, 404, 406. At the first stage 402, a first hand 408 of a user performs a gesture (e.g., involving two finger pointing outward as illustrated) that is detected by the 3D object detection system 118 and recognized by the gesture module 120 of FIG. 1 as a first gesture to initiate entry into the gesture recognition mode.

Once in the gesture recognition mode, a second hand 410 of the user initiates a measuring gesture by making a pinching motion as illustrated using arrows at the first stage 402. At the second stage 404, the pinch is maintained while the second hand 410 is moved a desired distance to be measured, which is then released at the third stage 406 by “un-pinching” the fingers to cause the computing device 102 to measure the distance. Thus, through use of the gesture recognition mode a number of gestures made available may be increased by recognizing a context of when a user desires input of the gestures and when a user does not. This allows the computing device 102 to disambiguate intended gestures from a user just “waving their hands.”

In the illustrated example, the first hand 408 of the user continues the first gesture (e.g., pointing with two fingers) to cause the computing device 102 to remain in the gesture recognition mode until released by the first hand 406, e.g., by no longer orienting the fingers in the illustrated manner. Other examples are also contemplated, such as to enter and remain in the mode until a gesture is recognized and then automatically exiting the mode such that recognition of completion of a gesture by either of the first or second hands 408, 410 of the user causes exit from the gesture recognition mode. Thus, efficiency of consumption of resources of the computing device 102 may be increased through use of the gesture recognition mode by supporting recognition of these other gestures while in the mode but not perform the detection for the gestures when not in this mode.

FIG. 6 depicts a system 600 in an example implementation in which stages of a gesture are used to establish entry into a gesture, test a status of the gesture, and perform the gesture. The system 600 is illustrated using first, second, and third stages 620, 604, 606. In some instances, initiation and performance of a gesture may be potentially sudden and jarring to a user using conventional technique, such as to change a sound volume. In conventional techniques, a user directly enters performance of operations associated with the gestures immediately and typically initiates the change, which could cause an output volume to change rapidly and startle a user. Accordingly, the techniques described herein may leverage stages of performance of a gesture to perform corresponding operations without these drawbacks, which is controlled using definable parts of a single motion by a user's hand 608 in order to make a snapping motion.

At the first stage 602, for instance, fingers of a user's hand are poised, which is recognized by the gesture module 120 as grabbing a control associated with a gesture to change a volume. Thus, the gesture module 120 is made aware that the user wishes to perform this change but does not yet begin to do so.

At the second stage 604, the hand 608 of the user begins a snapping motion. This is recognized by the gesture module 120 to initiate an operation to test a current volume level, i.e., “where the volume is at.” In this way, the user is made aware of the current volume level.

At the third stage 606, the hand 608 of the user is at a snapped position, which may then be moved up or down to cause the gesture module 120 to change the level of the volume. The user may then release the hand from the snapped position to complete the gesture and cause the volume to remain at a desired level. Thus, in this example distinct parts of performance of a motion by a hand may be used to control operations involved with a gesture.

FIG. 7 depicts a system 700 and FIG. 8 depicts a procedure 800 in an example implementation in which distance at which a gesture is performed is used to differentiate between operations performed in response to the gesture. In the following, reference is made interchangeably to both FIGS. 7 and 8.

The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of the procedure may be implemented in hardware, firmware, or software, or a combination thereof. The procedure is shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks.

As previously described, the 3D object detection system 118 is configured to detect objects, such as to identify the objects, an orientation of the objects, and movement of the objects in three dimensional space. Accordingly, part of this detection includes an ability to determine a relative distance of the object of the 3D object detection system 118, i.e., a “z” distance. In this example, this determination is leveraged to expand a number of operations that may be initiated by gestures.

For example, performance of a first operation is caused by the computing device 102 responsive to detection by the three dimensional object detection system of a collection of inputs involving identification, orientation, or movement of one or more hands of a user within a threshold distance (block 802). As before, the system 700 of FIG. 7 is illustrated using first and second stages 702, 704. At the first stage 702, the 3D object detection system 118 detects that a hand 706 of the user is within a threshold distance 708 from the system.

The gesture module 120 also recognizes a gesture through one or more of identification of the object (e.g., the hand 706), orientation of the object (e.g., a pinch by the fingers), and/or movement of the object, e.g., movement involved in making the pinch gesture 706. The gesture module 120 then initiates an operation based on the collection of inputs as well as the determination of the distance. For example, to select (e.g., cut or copy) display of an image in a user interface by a display device of the computing device 102.

Performance of a second operation is caused by the computing device 102 that is different than the first operation responsive to detection by the three dimensional object detection system of the collection of inputs involving identification, orientation, or movement of the one or more hands of the user that is not within the threshold distance (block 804). As shown at the second stage 704, the 3D object detection system 118 detects that the object (e.g., the hand 706 using a radar technique) is at a distance 710 that is greater than the threshold distance 708 of the first stage 706.

The gesture module 120 also detects the same collection of inputs involving identification, orientation, or movement of the one or more hands of the user, e.g., the pinch gesture in the previous example. However, since the distance is beyond the threshold a different operation is initiated even though the collection of inputs (e.g., the gesture) is the same but for the distance. The gesture module 120, for instance, may initiate a “pinch to zoom” operation to resize a display of the user interface by the computing device 102. In this way, a number of gestures supported by the computing device 102 may be increased by leveraging the determination of distance. The number of gestures may also be increased by leveraging additional input devices of the computing device, an example of which is described in the following.

FIG. 9 depicts a system 900 and FIG. 10 depicts a procedure 1000 in an example implementation in which a gesture is defined using inputs from a plurality of different input devices. In the following, reference is made interchangeably to both FIGS. 9 and 10.

The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of the procedure may be implemented in hardware, firmware, or software, or a combination thereof. The procedure is shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks.

The 3D object detection system 118 may be included in a variety of different computing device 102 configurations as shown and described in relation to FIG. 1. Accordingly, some of these configurations may include input devices in addition to this system, such as a cursor control device (e.g., mouse), keyboard, trackpad, and so forth. Once example of such an input device is a touchscreen system 902 as illustrated in FIG. 9. The touchscreen system 902 is configured as part of a display device 904 to detect proximity of an object to particular locations of the display device 904, such as to detect a finger of a user's hand 906, such as to perform conventional touchscreen gestures. In this example, however, inputs detected by the touchscreen system 902 as used along with inputs detected by the 3D object detection system 118 that are performable without touch to define a gesture that is recognizable by the gesture module 120.

Thus, a first input is detected using touchscreen functionality of the computing device 102 involving a first hand of a user (block 1002). In the illustrated example of FIG. 9, a hand 906 of a user is used to select an image 908 of a person displayed by the display device 904. The selection is detected by a touchscreen system 902, such as through capacitance, resistance, and so forth.

A second input is detected using a three dimensional object detection system of the computing device involving a second hand of the user (block 1004). Continuing with the previous example, the 3D object detection system 118 detect that another hand 910 of the user is performing a twisting motion with the fingers of the hand pinched relatively close together.

Performance of one or more operations is controlled by the computing device corresponding to a gesture defined by the detected first and second inputs (block 1006). The gesture module 120 thus recognizes in this example a subject (e.g., the image 908 of the person) of a motion made by the other hand of the user 910 and performs a corresponding operation, such as to rotate the image 908 as indicated by the other hand 910. A variety of other examples are also contemplated, such as to indicate entry into a gesture recognition mode as descried above via detection by the touchscreen system 902 to recognize gestures made by the other hand 910 of the user that are detected by the 3D object detection system 118.

FIG. 11 depicts a system 1100 and FIG. 12 depicts a procedure 1200 in an example implementation in which a gesture is detected through an article associated with or worn by a user. In the following, reference is made interchangeably to both FIGS. 11 and 12.

The following discussion describes techniques that may be implemented utilizing the previously described systems and devices. Aspects of the procedure may be implemented in hardware, firmware, or software, or a combination thereof. The procedure is shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks.

The 3D object detection system 118 is configurable in a variety of ways to detect gestures, an example of which is radar techniques performed using a radio wave transmitter/receiver 124 and a radar processing module 126. The radio wave transmitter/receiver 124, for instance, may transmit radio waves 1102 using one or more frequencies that fall within a Wi-Fi frequency band, e.g., in compliance with one or more IEEE 802.11 or other standards. In this example, these radio waves 1102 are of a sufficient strength to pass through fabric or plastic, such as an article worn by (e.g., shirt, pants) or associated with (e.g., a purse, briefcase, gym bag, backpack) a user.

In the illustrated instance, the computing device 102 is placed within a front pocket 1104 of jeans 1106 worn by a user 122 of FIG. 1. The 3D object detection system 118 detects an object in three dimensional space through an article worn by or associated with a user (block 1202). The 3D object detection system 118, for instance, uses radar techniques involving radio waves 1102 that pass through the article of clothing to identify and detect an orientation or movement of an object, such as a hand 1108 of a user.

The gesture module 120 then causes performance of one or more operations by the computing device responsive to the identification of gestures from inputs involving the detection (block 1204). The computing device 102, for instance, may be configured as a mobile phone and when the user receives a call, the user may initiate a gesture to silence the phone without even physically touching the phone or removing it from the user's pocket. In another example, gestures may be made to navigate through music being transmitted to wireless headphones by making gestures to navigate forward or back through a playlist. Although described as a mobile phone in this example, these techniques are also applicable to wearable devices such as those having a housing configured to be worn by a user, such that interaction with the device may be supported without requiring the user to actually view or expose the device.

FIG. 13 depicts an example implementation 1300 in which content is transferred between devices responsive to a gesture. This implementation 1300 is illustrated using first and second stages 1302, 1304. At the first stage 1302, a gesture module 120 of a computing device 1306 detects a pinch gesture made by a hand of a user 1308. In response, the gesture module 120 causes a display of corresponding content 1310 by the computing device 1306 to be cut or copied.

At the second stage 1304, a gesture module 120 from one or more of the computing device 1306 and/or computing device 1312 detects release of the gesture proximal to computing device 1312. In response, the computing device 1306 causes transfer of the content 1310, which is displayed on a display device of computing device 1312. In another instance, computing device 1312 requests the transfer of the content responsive to detection of the gesture. Computing devices 1306, 1312 may also operate in tandem to cause transfer of the content 1310, such as to detect selection by computing device 1306 and release by computing device 1312. In this way, a user may efficiently control transfer of content between computing devices 1306 1312 in an intuitive manner.

FIG. 14 depicts an example implementation 1400 of a cut and paste gesture and corresponding operation. This implementation 1400 is illustrated using first second, and third stages 1402, 1404, 1406. At the first stage 1402, a computing device 1408 detects movement of a user's hand 1410 as selecting an item of content 1412. This may be performed in a variety of ways, such as detection of a tap gesture “in the air” by a 3D object detection system 118 and gesture module 120 of the computing device 1408.

At the second stage 1404, another gesture is detected by the computing device 1406 to navigate through a user interface, such as a pan gesture also performed in the air by the user's hand 1410 as illustrated. Once a desired location in the user interface has been reached as shown in the third stage 1406, a tap gesture is repeated by the user's hand 1410 to cause the item of content 1412 to be pasted at that location in the user interface.

Thus, as shown in this example the gestures are performed and detected away from a display of a display device such that the fingers of the user's hand 1410 do not occlude the display device. This permits a user to interact with an entirety of a display area, which may improve user interaction efficiency especially for computing devices having relatively small display devices, e.g., wearables.

FIG. 15 depicts an example implementation 1500 of feedback usable to support a three-dimensional gesture. One of the challenges in supporting a gestures in three-dimensional space is that the gestures do not involve contact and thus it may be difficult for a user to determine “where” in a user interface interaction is to occur. Accordingly, the 3D object detection system 118 and gesture module 120 may be configured to support feedback to aid in this interaction.

The illustrated example is shown using first, second, and third stages 1502, 1504, 1506. At the first stage 1502, a computing device 1506 having a 3D object detection system 118 and gesture module 120 of FIG. 1 detects that a finger of a user's hand 1508 has approached within a predefined threshold distance, e.g., using a radar technique. In response, the gesture module 120 establishes a starting point for user interaction with a user interface displayed by the computing device 1506 and outputs an indication 1510 as feedback.

Subsequent movement of the finger of the user's hand 1508 causes corresponding movement of the indication 1510 as shown as the second stage 1506, and movement of the finger of the user's hand 1508 past the threshold causes the indication 1510 that provides the feedback to be removed. In this way, a user is provided with an efficient and intuitive means to support user interaction without occluding the display device of the computing device 1506 as described above. A variety of other examples are also contemplated without departing from the spirit and scope thereof.

Example Electronic Device

FIG. 16 illustrates various components of an example electronic device 1600 that can be implemented as a wearable haptic and touch communication device, a wearable haptic device, a non-wearable computing device having a touch-sensitive display, and/or a remote computing device as described with reference to any of the previous FIGS. 1-15. The device may be implemented as one or combination of a fixed or mobile device, in any form of a consumer, computer, portable, user, communication, phone, navigation, gaming, audio, messaging, Web browsing, paging, media playback, and/or other type of electronic device, such as the wearable device 104 described with reference to FIG. 1.

Electronic device 1600 includes communication transceivers 1602 that enable wired and/or wireless communication of device data 1604 and may also support the radar techniques previously described. Other example communication transceivers include NFC transceivers, WPAN radios compliant with various IEEE 802.15 (Bluetooth™) standards, WLAN radios compliant with any of the various IEEE 802.11 (WiFi™) standards, WWAN (3GPP-compliant) radios for cellular telephony, wireless metropolitan area network (WMAN) radios compliant with various IEEE 802.16 (WiMAX™) standards, and wired local area network (LAN) Ethernet transceivers.

Electronic device 1600 may also include one or more data input ports 1616 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television content, recorded video content, and any other type of audio, video, and/or image data received from any content and/or data source. Data input ports 1616 include USB ports, coaxial cable ports, and other serial or parallel connectors (including internal connectors) for flash memory, DVDs, CDs, and the like. These data input ports may be used to couple the electronic device to components, peripherals, or accessories such as keyboards, microphones, or cameras.

Electronic device 1600 of this example includes processor system 1608 (e.g., any of application processors, microprocessors, digital-signal-processors, controllers, and the like), or a processor and memory system (e.g., implemented in a SoC), which process (i.e., execute) computer-executable instructions to control operation of the device. Processor system 1608 (processor(s) 1608) may be implemented as an application processor, embedded controller, microcontroller, and the like. A processing system may be implemented at least partially in hardware, which can include components of an integrated circuit or on-chip system, digital-signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon and/or other hardware. Alternatively or in addition, the electronic device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits, which are generally identified at 1610 (processing and control 1610). Although not shown, electronic device 1600 can include a system bus, crossbar, or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.

Electronic device 1600 also includes one or more memory devices 1612 that enable data storage, examples of which include random access memory (RAM), non-volatile memory (e.g., read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. Memory device(s) 1612 provide data storage mechanisms to store the device data 1604, other types of information and/or data, and various device applications 1614 (e.g., software applications). For example, operating system 16116 can be maintained as software instructions within memory device 1612 and executed by processors 1608.

Electronic device 1600 also includes audio and/or video processing system 1618 that processes audio data and/or passes through the audio and video data to audio system 1620 and/or to display system 1622 (e.g., spectacles, displays on computing bracelet as shown in FIG. 1, and so on) to output content 118. Audio system 1620 and/or display system 1622 may include any devices that process, display, and/or otherwise render audio, video, display, and/or image data. Display data and audio signals can be communicated to an audio component and/or to a display component via an RF (radio frequency) link, S-video link, HDMI (high-definition multimedia interface), composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link. In some implementations, audio system 1620 and/or display system 1622 are external components to electronic device 1600. Alternatively or additionally, display system 1622 can be an integrated component of the example electronic device, such as part of an integrated touch interface.

CONCLUSION

Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed invention. 

What is claimed is:
 1. A method of controlling operation of a computing device based on three-dimensional gesture detection, the method comprising: receiving a touch input, by a touchscreen of the computing device, indicating a request from a user of the computing device to enter a gesture recognition mode; entering the gesture recognition mode based on the touch input; and responsive to entering the gesture recognition mode: transmitting, by a three-dimensional object detection system of the computing device, a signal configured to: pass through an intervening article worn by or associated with the user; and reflect off human tissue of the user; receiving, by the three-dimensional object detection system, a reflection of the signal off a portion of the user; determining, by the computing device, a gesture performed by the portion of the user in three-dimensional space based on the reflection of the signal; and causing performance of one or more operations, by the computing device, based on the determined gesture.
 2. The method of claim 1, wherein one or more of the signal or the reflection did not pass through the intervening article.
 3. The method of claim 1, wherein the three-dimensional object detection system uses radar techniques.
 4. The method of claim 1, further comprising exiting the gesture recognition mode, by the computing device, responsive to: causing the performance of the operations; or determining that the touch input is no longer being received.
 5. The method of claim 4, further comprising, after exiting the gesture recognition mode: transmitting, by the three-dimensional object detection system, another signal; receiving, by the three-dimensional object detection system, another reflection of the other signal off the user; determining, by the computing device, another gesture performed by the user in three-dimensional space based on the other reflection of the other signal; and ignoring the other gesture based on the computing device not being in the gesture recognition mode.
 6. A method of controlling operation of a computing device based on three-dimensional gesture detection, the method comprising: transmitting, by a three-dimensional object detection system of the computing device, one or more signals configured to: pass through an intervening article worn by or associated with a user of the computing device; and reflect off human tissue of the user; receiving, by the three-dimensional object detection system, a first reflection of a first signal of the signals off a first portion of the user; determining, by the computing device, a first instance of a first gesture performed by the first portion of the user in three-dimensional space based on the first reflection of the first signal; receiving, by the three-dimensional object detection system, a second reflection of the first signal or a second signal of the signals off a second portion of the user; determining, by the computing device, a second gesture performed by the second portion of the user in three-dimensional space based on the second reflection of the first signal or the second signal; recognizing, by the computing device, the second gesture as an intended gesture based on the determination of the first instance of the first gesture; and causing performance of one or more operations, by the computing device, based on the second gesture.
 7. The method of claim 6, wherein one or more of the first signal, the second signal, the first reflection, or the second reflection did not pass through the intervening article.
 8. The method of claim 6, wherein the first gesture is performed by a first hand of the user and the second gesture is performed by a second hand of the user.
 9. The method of claim 6: further comprising storing user-customized reflection data corresponding to the first gesture; and wherein the first gesture is determined based on a comparison of the first reflection to the user-customized reflection data.
 10. The method of claim 6, further comprising: transmitting, by the three-dimensional object detection system, one or more other signals; receiving, by the three-dimensional object detection system, a third reflection of a first other signal of the other signals off the user; determining, by the computing device, a third gesture performed by the user in three-dimensional space based on the third reflection of the first other signal; failing to determine, by the computing device, a second instance of the first gesture based on reflections of the first other signal or a second other signal of the other signals; and ignoring the third gesture.
 11. A computing device comprising: a three-dimensional object detection system configured to: transmit signals configured to: pass through intervening articles worn by or associated with users of the computing device; and reflect off human tissue of the users; receive reflections of the signals reflected off portions of the users; and determine spatial information about the portions of the users based on the received reflections of the signals; and a gesture module implemented at least partially in hardware, the gesture module configured to: receive, from the three-dimensional object detection system, first spatial information about a first portion of the user; determine a first instance of a first gesture performed by the first portion of the user based on the first spatial information; receive, from the three-dimensional object detection system, second spatial information about a second portion of the user; determine a second gesture performed by the second portion of the user based on the second spatial information; recognize the second gesture as an intended gesture based on the determination of the first instance of the first gesture, and cause performance of one or more operations of the computing device based on the second gesture.
 12. The computing device of claim 11, wherein signals used to determine the first spatial information and the second spatial information did not pass through the intervening article.
 13. The computing device of claim 11, wherein the first portion comprises a first hand of the user and the second portion comprises a second hand of the user.
 14. The computing device of claim 11, wherein one or more of the first gesture or the second gesture is customized to the user.
 15. The computing device of claim 11, wherein the gesture module is further configured to: receive, from the three-dimensional object detection system, third spatial information about the user; determine a third gesture performed by the user based on the third spatial information; fail to determine a second instance of the first gesture from the third spatial information; and ignore the third gesture.
 16. The computing device of claim 11, wherein the gesture module is further configured to: enter a gesture recognition mode responsive to determining the first gesture; and exit the gesture recognition mode based on a determination that the first gesture is no longer being performed or that the operations have been completed.
 17. The computing device of claim 11, wherein the three-dimensional object detection system uses radar techniques.
 18. A method of controlling operation of a computing device based on three-dimensional gesture detection, the method comprising: displaying, by the computing device, a user interface; determining, by a three-dimensional object detection system of the computing device, that a portion of a user has entered a predefined threshold distance with the computing device; determining, by the computing device, a location within a user interface corresponding to a location of the portion of the user relative the user interface when the predefined threshold distance was met; displaying, by the computing device, an indication of the location on the user interface of the computing device; receiving, from the three-dimensional object detection system, spatial information about the portion of the user while in the predefined threshold distance; and changing the indication based on the spatial information; or performing an operation on an object of the user interface proximal the indication based on the spatial information.
 19. The method of claim 18, further comprising: determining, by the three-dimensional object detection system, that the portion of the user has exited the predefined threshold distance; and removing, by the computing device, the indication from the user interface.
 20. The method of claim 18, wherein the three-dimensional object detection system uses radar techniques.
 21. A method of controlling operation of a computing device based on three-dimensional gesture detection, the method comprising: transmitting, by a three-dimensional object detection system of the computing device, a first signal configured to reflect off of human tissue; receiving, by the three-dimensional object detection system, a first reflection of the first signal off of human tissue of a user; determining, by the computing device, a first gesture performed by the user in three-dimensional space based on the first reflection of the first signal, the first gesture corresponding to a request from the user to enter a gesture recognition mode; entering the gesture recognition mode based on the determined first gesture; and responsive to entering the gesture recognition mode: transmitting, by the three-dimensional object detection system, a second signal; receiving, by the three-dimensional object detection system, a second reflection of the second signal off of the user; determining, by the computing device, a second gesture performed by the user in three-dimensional space based on the second reflection of the second signal; and causing performance of one or more operations, by the computing device, based on the determined second gesture.
 22. The method of claim 21, further comprising exiting the gesture recognition mode responsive to causing the performance of the operations.
 23. The method of claim 22, further comprising, after exiting the gesture recognition mode: transmitting, by the three-dimensional object detection system, a third signal; receiving, by the three-dimensional object detection system, a third reflection of the third signal off of the user; determining, by the computing device, a third gesture performed by the user in three-dimensional space based on the third reflection of the third signal; and ignoring the third gesture based on the computing device not being in the gesture recognition mode.
 24. A computing device comprising: a touchscreen configured to receive a touch input indicative of a request of a user to enter a gesture recognition mode; a three-dimensional object detection system configured to: transmit one or more signals over time, the signals capable of: passing through an intervening article worn by or associated with the user; and reflecting off human tissue of the user; receive one or more reflections of the signals reflected off a portion of the user over time; and determine, based on the received reflections of the signals, spatial information about the portion of the user over time; at least one processor; and at least one computer-readable memory device comprising instructions, that, when executed by the processor, cause the processor to implement a gesture module configured to: enter, based on the touch input, a gesture recognition mode; and responsive to entering the gesture recognition mode: receive, from the three-dimensional object detection system, a first portion of the spatial information; determine, based on the first portion of the spatial information, a gesture performed by the portion of the user in three-dimensional space; and send an indication of the gesture to cause performance of one or more operations.
 25. The computing device of claim 24, wherein the three-dimensional object detection system is further configured to transmit the signals and receive the reflections without the signals and the reflections passing through the intervening article.
 26. The computing device of claim 24, wherein the three-dimensional object detection system is further configured to use radar techniques to determine the spatial information about the portion of the user over time.
 27. The computing device of claim 24, wherein the gesture module is further configured to exit, based on the operations being performed or the touch input no longer being received by the touchscreen, the gesture recognition mode.
 28. The computing device of claim 27, wherein the gesture module is further configured to, after exiting the gesture recognition mode: receive, from the three-dimensional object detection system, a second portion of the spatial information; determine, based on the second portion of the spatial information, another gesture performed by the portion of the user in three-dimensional space; and ignore, based on the exiting of the gesture recognition mode, the other gesture.
 29. A computing device comprising: a touchscreen configured to display a user interface; a three-dimensional object detection system configured to: transmit one or more signals over time, the signals capable of: passing through an intervening article worn by or associated with the user; and reflecting off human tissue of the user; receive one or more reflections of the signals reflected off a portion of the user over time; and determine, based on the received reflections of the signals, spatial information about the portion of the user over time; at least one processor; and at least one computer-readable memory device comprising instructions, that, when executed by the processor, cause the processor to implement a gesture module configured to: receive a first portion of the spatial information; determine, based on the first portion of the spatial information, that the portion of the user has entered a predefined threshold distance with the computing device; determine, based on the first portion of the spatial information, a location within the user interface corresponding to a location of the portion of the user relative the user interface when the predefined threshold distance was met; causing the touchscreen to display an indication of the location on the user interface; and cause, based on a second portion of the spatial information corresponding to the portion of the user while in the predefined threshold distance, the indication to change; or cause, based on the second portion of the spatial information, a performance of an operation on an object of the user interface proximal the indication.
 30. The computing device of claim 29, wherein the gesture module is further configured to: determine, based on a third portion of the spatial information, that the portion of the user has exited the predefined threshold distance; and causing the touchscreen to remove the indication from the user interface.
 31. The computing device of claim 29, wherein the three-dimensional object detection system is further configured to determine the spatial information using radar techniques.
 32. A computing device comprising: a three-dimensional object detection system configured to: transmit one or more signals over time, the signals capable of: passing through an intervening article worn by or associated with the user; and reflecting off human tissue of the user; receive one or more reflections of the signals reflected off the user over time; and determine, based on the received reflections of the signals, spatial information about the user over time; at least one processor; and at least one computer-readable memory device comprising instructions, that, when executed by the processor, cause the processor to implement a gesture module configured to: receive the spatial information; determine, based on a first portion of the spatial information, a first gesture performed by the user in three-dimensional space, the first gesture corresponding to a request from the user to enter a gesture recognition mode; enter, based on the determining the first gesture, the gesture recognition mode; and responsive to entering the gesture recognition mode: determine, based on a second portion of the spatial information, a second gesture performed by the user in three-dimensional space; and causing, based on the determination of the second gesture, performance of one or more operations.
 33. The computing device of claim 32, wherein the gesture module is further configured to exit, based on the operations being performed, the gesture recognition mode.
 34. The computing device of claim 32, wherein the gesture module is further configured to, after exiting the gesture recognition mode: determine, based on a third portion of the spatial information, a third gesture performed by the user in three-dimensional space; and ignore, based on the exiting of the gesture recognition mode, the determination of the third gesture. 